package com.jdiv.samples.truco;

import java.util.ArrayList;

/**
 * @author  Joyal
 */
public class Mesa {
	
	public static final int JUGADORES_MIN		= 2;
	public static final int JUGADORES_MAX 	 	= 4;
		   		  final int CARTAS_MESA			= 1;
		   		  final int MAX_CARTAS_JUGADOR  = 3;

    /**
	 * @uml.property  name="vira"
	 * @uml.associationEnd  
	 */
    public Carta vira;
    private int max_jugadores=0;
    private int posiciones[][]=new int[4][2];
	
	// SOLO DOS O CUATRO JUGADORES

	ArrayList<Jugador> jugadores=new ArrayList<Jugador>();
	/**
	 * @uml.property  name="mazo"
	 * @uml.associationEnd  
	 */
	Mazo mazo;
	
	public Mesa(int max_jugadores){

		//Iniciamos las cartas
		mazo=new Mazo();
		mazo.iniciarMazo();
		mazo.barajarMazo();
		
		this.max_jugadores=max_jugadores;
		

		posiciones[0][0] = Main.WIDTH/2;
		posiciones[0][1] = 500;
		
		posiciones[1][0] = Main.WIDTH/2;
		posiciones[1][1] = 80;

		posiciones[2][0] = 40;
		posiciones[2][1] = Main.HEIGHT/2;

		posiciones[3][0] = Main.WIDTH-40;
		posiciones[3][1] = Main.HEIGHT/2;

	}
	
	public void pushVira(int x,int y){  
		vira = new Carta(mazo.getCarta(),x,y);
	}
	
	public void addJugador(Jugador jugador){
		
		if (jugadores.size() < max_jugadores ){
		    jugadores.add(jugador);
		    
		    
			jugador.x=posiciones[jugadores.size()-1][0];
			jugador.y=posiciones[jugadores.size()-1][1];
			
			jugador.addCartas(mazo.getCarta(),mazo.getCarta(), mazo.getCarta());
			
			posicionaCartas(jugador);
			
		}
	}
	
	private void posicionaCartas(Jugador jugador){
	 Carta	cartas[]=jugador.getCartas();
	 
		switch (jugador.getPosicion()){
		case 1:
			cartas[0].x = jugador.x - 200;
			cartas[0].y = jugador.y - 100;
	
			cartas[1].x = jugador.x - 50;
			cartas[1].y = jugador.y - 100;

			cartas[2].x = jugador.x + 100;
			cartas[2].y = jugador.y - 100;
			
		break;
		case 2:
			cartas[0].x = jugador.x - 200;
			cartas[0].y = jugador.y + 50;
	
			cartas[1].x = jugador.x - 50;
			cartas[1].y = jugador.y + 50;

			cartas[2].x = jugador.x + 100;
			cartas[2].y = jugador.y + 50;
			
		break;
		case 3:
			
		break;
		case 4:
		
		break;
	}

	}
	/**
	 * @return
	 * @uml.property  name="mazo"
	 */
	public Mazo getMazo(){
		return mazo;
	}
}
